package main

import "fmt"

// Person 首字母大写表示可以被全局引用，首字母小写则只能在当前包中引用[go用的首字母自瞄是比较领先]
type Person struct {
	Name     string
	Age      int
	Email    string
	location string
}

func main() {
	//可以在Person初始化时候直接赋值
	var person = Person{
		Name:  "Acy",
		Age:   30,
		Email: "acy@gmail.com",
	}
	fmt.Println(person)
	//初始化不赋值，则其中字段都为零值
	var p1 = Person{}
	p1.Name = "Alice"
	//因为在同一个包中，所以可以引用
	p1.location = "北京"
	fmt.Println(p1.Email, p1.Age)
	//new返回的是结构体的指针
	p2 := new(Person)
	fmt.Printf("p1的类型%T\n", p1)
	fmt.Printf("p2的类型%T\n", p2)
	fmt.Println(p2.Age)
}
